Animated messaging

ABSTRACT

A method and apparatus that allows an animated interactive talking character to appear on a user&#39;s screen when conducting an Instant Messaging (IM) session. The character which is displayed on the user&#39;s screen is determined by a profile for the sender of the message. This allows a user to pre-select which character will be displayed on the screen of recipients of the instant message.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims priority based on Australian ProvisionalApplication 20022950502, filed on Jul. 31, 2002, by e-Clips IntelligentAgent Technologies Pty. Ltd, entitled “Animated Messaging”. Thisapplication and its disclosure are fully incorporated in the presentdisclosure by reference thereto.

FIELD OF THE INVENTION

The present invention relates to the field of instant messaging. Morespecifically, the present invention relates to a solution that allowsfor animated instant messaging.

BACKGROUND OF THE INVENTION

Instant Messaging (IM) has been growing in popularity in recent years.Commonly utilized IM formats, such as Yahoo™ Messenger, created byYahoo™ of Sunnyvale, Calif, and Net Messenger, created by Microsoft™ ofRedmoneed, Wash., allow a computer user to transmit typed information orother data (such as images and videos) to other users of the IM servicealmost instantaneously. Additionally, many cellular phones now have textmessaging services, most utilizing the Short Message Service (SMS) andMultimedia Message Service (MMS), to allow customers to send and receivetext messages.

In both formats, it is common to utilize fixed simple diagrams that canbe displayed within the space of one or two characters in order toquickly convey common pieces of information. Most commonly, these simplediagrams represent emotional states of the user, such as happy beingindicated by a smiley-face. As such, these symbols are sometimes knownas “smileys”. In other circles, they are also known as “emoticons”. Theyneed not be limited to emotional states, as the simple, diagram canrepresent any type of message, such as a “happy birthday” symbol or thelike. The rigidity and lack of choice of these fixed simple diagrams,however, is a limitation.

What is needed is a solution that allows more creativity and variety inthe IM environment

BRIEF DESCRIPTION

The present invention provides a solution that allows an animatedinteractive talking character to appear on a user's screen whenconducting an Instant Messaging (IM session. The character which isdisplayed on the user's screen may be determined by a profile for thesender of the message. This allows a user to pre-select which characterwill be displayed on the screen of recipients of the instant messages.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated into and constitute apart of this specification, illustrate one or more embodiments of thepresent invention and, together with the detailed description, serve toexplain the principles and implementations of the invention.

In the drawings:

FIG. 1 is a block diagram illustrating a system utilizing a robot inaccordance with an embodiment of the present invention.

FIG. 2 is a flow diagram illustrating a method for instant messaging ona computer system in accordance with an embodiment of the presentinvention.

FIG. 3 is a flow diagram illustrating a method for receiving advertisingon a computer system in accordance with an embodiment of the presentinvention.

FIG. 4 is a flow diagram illustrating a method for interacting with asoftware robot in accordance with an embodiment of the presentinvention.

FIG. 5 is a flow diagram illustrating a method for managing an IM systemin accordance with an embodiment of the present invention.

FIG. 6 is a flow diagram illustrating a method for serving advertisingto a user of a computer system in accordance with an embodiment of thepresent invention.

FIG. 7 is a flow diagram illustrating a method for providing access toan artificial intelligence software robot to a user in accordance withan embodiment of the present inventions.

FIG. 8 is a flow diagram illustrating a method for providing IM accesson a Short Message Service (SMS) or Multimedia Message Service (MMS)format device in accordance with an embodiment of the present invention.

FIG. 9 is a flow diagram illustrating a method for personalizing ananimated character on a computer system in accordance with an embodimentof the present invention.

FIG. 10 is a block diagram illustrating an apparatus for instantmessaging on a computer system in accordance with an embodiment of thepresent invention.

FIG. 11 is a block diagram illustrating an apparatus for receivingadvertising on a computer system in accordance with an embodiment of thepresent invention.

FIG. 12 is a block diagram illustrating an apparatus for interactingwith a software robot in accordance with an embodiment of the presentinvention.

FIG. 13 is a block diagram illustrating an apparatus for managing an IMsystem in accordance with an embodiment of the present invention.

FIG. 14 is a block diagram illustrating an apparatus for servingadvertising to a user of a computer system in accordance with anembodiment of the present invention.

FIG. 15 is a block diagram illustrating an apparatus for providingaccess to an artificial intelligence software robot to a user inaccordance with an embodiment of the present invention.

FIG. 16 is a block diagram illustrating an apparatus for providing IMaccess on a Short Message Service (SMS) or Multimedia Message Service(MMS) format device in accordance with an embodiment of the presentinvention.

FIG. 17 is a block diagram illustrating an apparatus for personalizingan animated character on a computer system in accordance with anembodiment of the present invention. An image receiver 1700 may receivean image from the user.

FIG. 18 is a block diagram illustrating a method and an apparatus forproviding IM access on a Short Message Service (SMS) or MultimediaMessage Service (MMS) format device in accordance with an embodiment ofthe present invention which makes use of a dynamic array to form aninstruction queue.

DETAILED DESCRIPTION

Embodiments of the present invention are described herein in the contextof a system of computers, servers, and software. Those of ordinary skillin the art will realize that the following detailed description of thepresent invention is illustrative only and is not intended to be in anyway limiting. Other embodiments of the present invention will readilysuggest themselves to such skilled persons having the benefit of thisdisclosure. Reference will now be made in detail to implementations ofthe present invention as illustrated in the accompanying drawings. Thesame reference indicators will be used throughout the drawings and thefollowing detailed description to refer to the same or like parts.

In the interest of clarity, not all of the routine features of theimplementations described herein are shown and described. It will, ofcourse, be appreciated that in the development of any such actualimplementation, numerous implementation-specific decisions must be madein order to achieve the developer's specific goals, such as compliancewith application- and business-related constraints, and that thesespecific goals will vary from one implementation to another and from onedeveloper to another. Moreover, it will be appreciated that such adevelopment effort might be complex and time-consuming, but wouldnevertheless be a routine undertaking of engineering for those ofordinary skill in the art having the benefit of this disclosure.

In accordance with the present invention, the components, process steps,and/or data structures may be implemented using various types ofoperating systems, computing platforms, computer programs, and/orgeneral purpose machines. In addition, those of ordinary skill in theart will recognize that devices of a less general purpose nature, suchas hardwired devices, field programmable gate arrays (FPGAs),application specific integrated circuits (ASICs), or the like, may alsobe used without departing from the scope and spirit of the inventiveconcepts disclosed herein.

The present invention provides a solution that allows an animatedinteractive talking character to appear on a user's screen whenconducting an Instant Messaging (IM) session. The character which isdisplayed on the user's screen may be determined by a profile for thesender of the message. This allows a user to pre-select which characterwill be displayed on the screen of recipients of the instant messages.

An embodiment of the present invention is described for use with theMicrosoft Messenger. As such, it is described as a plug in. One ofordinary skill in the art will recognize that the invention may bemodified for use with other messaging systems.

In an embodiment of the present invention, a system is provided thatallows users to select from many different animated personalities thatwill represent them during an IM session. Furthermore, an embodiment ofthe present invention allows users to import images into the animatedpersonality, therefore permitting them to utilize characters that may,for example, have the user's face on it, or perhaps the face of theuser's favourite celebrity. When the animated character is displayed onthe recipient's screen, it may appear outside of the typical IM window,allowing user's to move the animated character to a convenient portionof the desktop.

In an embodiment of the present invention, text-to-speech software maybe utilized to allow the animated character to read instant messagesaloud. The animated characters may be programmed such that their lipsmay move along with the text being read. Furthermore, the typical“smileys” or “emoticons” may be interpreted by the character and theanimation may change based on the corresponding emoticon. For example,if the sender of the IM message indicates an “angry” emoticon, theanimated character may be displayed as pounding his fist against atable.

The user may select a character to act as their personality using aninterface. In an embodiment of the present invention, the interface maybe a web interface, such as a web page, where the user logs in with anaccount name and password, such as with their IM account name andpassword, and selects from a number of different features. Once the userhas selected a character, the selection may be transmitted to the servercontaining the relevant information. A user's preferences may be storedin a database that may be referenced by the IM account name and a userdefined password. The database may be used to hold all relevant userinformation and the associated character data.

The user may download the add-in using this interface as well. Theadd-in may connect to the IM messaging system. It may then wait forautomation events that signify that an incoming message has arrived. Atthis point, the add-in may contact the database to look up whichpersonality or character the message sender has chosen. The connectionto the database of stored information may be indirect, as it may beretrieved through the server where a dynamically generated query to thedatabase may be created using the incoming request. If no record isfound, a default personality may be used. The personality may then beloaded onto the user's display.

In an embodiment of the present invention, when a user changes theircharacter, the new details may be broadcast to all members of theircontact lists so that remote copies of the add-in can updated thedisplayed character for the user. However, in the current Microsoftfunctionality, there is no way for this broadcast to take place, thus insome embodiments the add-in must perform the aforementioned request forevery incoming message if it wants to ensure that the characterdisplayed is the current one. In another embodiment, the request may beperformed only sporadically, loading the character data from a localcache until such time as it deems an update is necessary (perhaps once aday, for example).

The character may be used to graphically output, using animated and/orstatic images, a visual representation of the personality defined by thesender. Additionally, pre-recorded audio clips may be utilized alongwith text-to-speech synthesis in order to provide an audio version orrepresentation of the message. The audio portion may not be limited tomerely an audio transcript of the written information. It may, forexample, include sound effects. Perhaps a user wishes to have a symbolindicated anger cause a sound effect of a dog growling to be played bythe recipient's computer system.

The add-in may parse incoming messages for a predefined list ofemoticons and may match them with a predefined list of characteranimations or audio clips. The add-in may then request the specifiedanimation file from the server and play it for the user.

By maintaining the character personality based on the user's log-inname, the present invention allows the character to be a consistentidentify across multiple messaging platforms, so a user may log-in ontheir computer at work, for example, and their character will be presentin their messages just as it is from their home computer.

In an embodiment of the present invention, an auto responder functionmay be included to allow users to enable an automated response, such as“On vacation until May 30th” to any received messages. The add-in mayautomatically type and submit the user-defined message back to thesender of the incoming message. Each auto-responder message may be sentpre-appended with a specially formatted string that may be used toprevent auto-responders from responding to each other.

In an embodiment of the present invention, interactive advertising maybe provided through the add-in. This advertising may be maintained in adatabase. it may list all advertisement details. A simple interface maybe provided for administrators where they can specify the details of theadvertisement. The add-in may request an advertisement from the databaseperiodically, such as every 30 minutes.

In an embodiment of the present invention, a “robot” may be provided toallow interactive communications between a user and the server. Thiscould be used, for example, to allow web searching through IM, access todatabase information (such as corporate sales records in the case whereIM is used at the corporate level) or interactive help. FIG. 1 is ablock diagram illustrating a system utilizing a robot in accordance withan embodiment of the present invention. The robot 100 may actually be aserver application that listens for incoming messages from the messenger102. When one of these alerts is received, it may store the message in adata structure such as an array, which is keyed against the name of theuser who sent the alert. The message may then be sent to an artificialintelligence (AI) application 104 along with any previous messages fromthe initiating user. This allows the AI 104 to appear to be having anintelligent conversation by referring to things previously spoken aboutand keeping the conversation in context. Once the message has beenprocessed and a response formed, it may be returned to the robot 100which may forward the response via the messenger 102 to the initiatinguser.

The web searching function may be implemented by, for example, havingthe first six characters of an IM message read “google”. A keyword tosearch may be provided after the word “google” to indicate what tosearch. The Robot may then take this word and forward it to the Google™search engine, created by Google, Inc. of Mountain View, Calif. andrequest five results. Google may then respond with details to then bedeciphered by the robot. This may then be sent back to the initiatinguser. The sending of the results of the search need not be immediate. Itmay, for example, search for 24 hours and then follow up with theresults. The robot may also be used for other. artificial intelligenceapplications. It may even be proactive, that is, initiate communicationwith a user before the user initiates communication.

In an embodiment of the present invention, the add-in may display aplurality of animated characters simultaneously if multiple IM sessionsare being conducted. The animated characters may be placed anywhere onthe display, to avoid overlap. This may also be extended to allow a“chat session” with many different animated characters representing thevarious senders in the chat session.

In an embodiment of the present invention, support may be provided forcellular phone or other “non-traditional” IM environments. SMS and MMSmessaging may be provided as an option to subscribers. They may thenprovide their cellular phone information and set their auto-responder to“forward” mode to indicate that they wish their cell phone to receivetheir IM messages.

The add-in may then detect when a message is received and check to seeif the user has set the auto-responder to forward mode. If so, then theadd-in may send the message details to the server. The server may thenretrieve the mobile phone number. The server may then format the messageinto SMS or MMS. If MMS is utilized, the server may send a thumbnailimage representing the user of the incoming message and convert themessage from plain text into an audio file. The message may then beforwarded to the communications gateway, which would in turn send themessage into the public telephone network to be received by the user'smobile telephone.

The technology of the present invention may be modified to support othermessaging services such as Yahoo, ICQ, Trillian, etc. However, there areinterface issues that apply to each of these services. Generally, inorder to interface with these services an Application ProgrammingInterface (API) needs to be utilized, which exposes the features of theservice to outside programmers. Thus, in that vain, some services do notprovide all the needed features in their API or even simply do notprovide an API at all. This problem may be overcome using severaltechniques. In one technique, the “handles” of all conversation windowsmay be stored. The add-in may then scan the contents of the conversationwindow every 100 ms or the like, and compare its contents with thecontents of the previous scan. If the contents were different, it wouldindicate a new message has arrived and the difference would be parsed toextract the name of the sender and the contents of the message. Thesecharacters may then be presented to the character to visualize for theuser.

In addition to a set of predefined characters from which to select, inan embodiment of the present invention the user may personalize an IMcharacter. This allows the user to add, for example, an image of hisface on the character. The personalization of the animated charactersmay operate in the following manner. A user interface may be providedwithin the application. Upon entering the “Personalization” menu area,the user may be redirected to a section of the host web site. Withinthis area are instructions advising a user of the processes and a meansfor a user to link a single image file (e.g., photograph) and uploadthis file to the user. The user may be provided with tools to crop theimage, defining an area over the image that reduces the display area tocapture only the external facial and head area. Once the upload of theuser's image is complete, the user may submit the uploaded image forprocessing.

Once the image is submitted for processing, the images processing enginemay use the area defined by the user and crop the image to that size.From this point, depending on the image processing engine deployed, theextraneous information within the image may be modified, leaving atransparent image area surrounding the facial features and head of thesubject image. The image may be subsequently processed (rendered) togive the appearance of it having been “extruded”, creating theappearance of a three-dimensional image. Once the rendered image iscreated, the engine may use predetermined parameters to manipulate theextruded image into preconfigured positions and interpolate the movementfrom the base position to the new position. As a result, the imageprocessing engine may output a series of sequential, specifically sizedimages that depict the rendered, extruded facial images moving from thebase point to the predetermined point.

Using the previously outputted images, a further stage of processing maybe performed wherein the images are introduced to a three-dimensionalgeometry engine. The base image that contains the rendered facialfeatures may be aligned and mapped to three-dimensional geometryrepresenting a character. This alignment of the image occurs to that theprocessed image exists to cover the face of the character inthree-dimensional geometry. The other character attributes may bepredefined in terms of body shape, surface such as clothing and coloursand textures. The geometry engine may then be used to render out a totalsequence of animated motion, and output to a series of still, sequentialimages. These images may conform to the standard required by the nextlevel of image processing. These images may be named and numberedfollowing a strict nomenclature and in accordance with a suitable colourtable that enables the next processing step to occur.

The sequential rendered images from the previous step may then becompiled into a single, digital file. During this process, the imagesare compiled in such a way as to bring together individual static imagesinto a series of animated sequences. The animated sequences may then becompiled into a proprietary format.

The resultant compilation may deliver several files that describe itscontents and deliver connectivity to the user application. The completedfiles may be deposited on the server. The server may be notified of thenewly created character and include the image within the characterlibrary, assigning the image to the identity of the initial imageprovider. The user may then be notified by email of their completedcharacter.

Additionally, in certain circumstances it may be desirable to defineanimations to an “idle” state. It has been discovered that if charactersappear on screen without moving for long periods of time, it becomesdisconcerting to users. At the same time, small character movements atfrequent/random intervals help to enhance the realism of a givencharacters. As a result, when creating a character, a specific animationmay be assigned to an idle “state”. There may be, for example, 3 levelsof idle, levels 1, 2, and 3. The first level may idle a randomlyselected movement and play it on the screen. This may occur when thecharacter has not bee used for a short period of time. If no interactionwith the character continues, the agent application may begin to playanimations with an assigned state of idle level 2 animations. Similarly,when the time interval of interaction with the user increases, idle 3assigned animations may be displayed to the user, and so on.

In an embodiment of the present invention, the add-in may automaticallydownload an idle animation and display it on the screen when a user hasnot interacted with the animated character for a predetermined period oftime. It may similarly download a next level of idle if there continuesto be no interaction.

Commonly, instant messages include acronyms for typically-used phrases,such as LTR for later, and A/S/L for Age/Sex/Location. A table may beutilized to store these acronyms and their corresponding definitions.When the add-in detects such an acronym, it may substitute thedefinition when delivering it to the user (via the screen or thetext-to-speech synthesis).

In addition to the text-to-speech functionality described above, thepresent invention may also include the opposite, speech-to-textsynthesis. Through such features, the add-in may receive voice commandsfrom a user through a microphone and convert the speech to text in theinstant message. Certain phrases may then be used for special commands,such as sending the instant message.

FIG. 2 is a flow diagram illustrating a method for instant messaging ona computer system in accordance with an embodiment of the presentinvention. At 200, an IM may be received containing content from thesender. At 202, an identification of the sender of the IM may bedetermined from the IM. At 204, a request may be sent to a server withthe identification of the sender. At 206, an animated characterassociated with the sender may be received from the server. At 208, ananimated character associated with the sender may be displayed. Thisdisplaying may include displaying the animated character outside of anIM window, and allowing a user to move the animated character anywhereon the screen. At 210, the content may be delivered to a user throughthe animated character. This may include converting text from the IMinto audio through text-to-speech synthesis and playing the audio. Thedelivering may further include animating the character insynchronization with the playing of the audio. Further, the deliveringmay include detecting an emoticon in the IM and animating the characterin a way that reflects the emoticon.

FIG. 3 is a flow diagram illustrating a method for receiving advertisingon a computer system in accordance with an embodiment of the presentinvention. At 300, advertisement details may be periodically retrievedfrom a server. At 302, an animated character specified to represent theadvertisement may be downloaded. At 304, the animated characterspecified to represent the advertisement may be displayed. At 306,content specified for the advertisement may be delivered.

FIG. 4 is a flow diagram illustrating a method for interacting with asoftware robot in accordance with an embodiment of the presentinvention. At 400, an alert may be sent to a server. The sending of analert may include a sending a message indicating that a web search is tobe performed and sending keywords to search in the web search. At 402, aresponse containing content may be received from the server generated byan artificial intelligence (AI) application. At 404, an animatedcharacter associated with the AI application may be displayed. At 406,the content may be delivered to a user through the animated characterassociated with the AI application. This may include delivering resultsof a web search if one was conducted.

FIG. 5 is a flow diagram illustrating a method for managing an IM systemin accordance with an embodiment of the present invention. At 500, arequest may be received from a user for an animated character, therequest including an identification of a sender of the IM message to theuser. At 502, a database may be queried with the identification. At 504,information regarding the animated character may be received from thedatabase. This information may include a location for an animation filerepresenting the animated character. At 506, the information regardingthe animated character may be forwarded to the user.

FIG. 6 is a flow diagram illustrating a method for serving advertisingto a user of a computer system in accordance with an embodiment of thepresent invention. At 600, a periodic request for an advertisement maybe received from a user. At 602, an advertisement may be selected froman advertising database. At 604, the advertisement may be served to theuser.

FIG. 7 is a flow diagram illustrating a method for providing access toan artificial intelligence software robot to a user in accordance withan embodiment of the present invention At 700, an alert being sent fromthe user in an IM message may be detected, the IM message includingcontent. At 702, the alert and the content may be passed to anartificial intelligence application. The AI application may provideinteractive help, web searching, or other capabilities to the user. At704, a response from the artificial intelligence application may bereceived. At 706, the response may be forwarded to the user.

FIG. 8 is a flow diagram illustrating a method for providing IM accesson a Short Message Service (SMS) or Multimedia Message Service (MMS)format device in accordance with an embodiment of the present invention,At 800, a message may be received from the user indicating that the userwishes for all messages to be forwarded to a device utilizing the SMSformat. At 802, an identification of the device may be retrieved from adatabase. This identification may be a cellular phone number. At 804,message intended for the user may be formatted in SMS. At 806, theformatted message may be forwarded to a communications gateway alongwith the identification.

FIG. 9 is a flow diagram illustrating a method for personalizing ananimated character on a computer system in accordance with an embodimentof the present invention. At 900, an image may be received from theuser. At 902, the image may be rendered as an animated character. Thismay include removing extraneous information from the image, modifyingthe image to a three-dimensional image, manipulating the image intopreconfigured positions, interpolating movements from a base position toa new position for each of one or more animations for the animatedcharacter to perform, and introducing the image to a three-dimensionalgeometry engine. At 904, the rendered image may be saved in a database.

FIG. 10 is a block diagram illustrating an apparatus for instantmessaging on a computer system in accordance with an embodiment of thepresent invention. An IM receiver 1000 may receive an IM containingcontent from the sender. A sender identification determiner 1002 coupledto the IM receiver 1000 may determine an identification of the sender ofthe IM from the IM. A server request sender 1004 coupled to the senderidentification determiner 1002 may send a request to a server with theidentification of the sender. An animated character receiver 1006 mayreceive an animated character associated with the sender from theserver. An animated character displayer 1008 coupled to the animatedcharacter receiver 1006 and to the IM receiver 1000 may display ananimated character associated with the sender. This displaying mayinclude displaying the animated character outside of an IM window usingan IM window-external character displayer 1010, and allowing a user tomove the animated character anywhere on the screen using an animatedcharacter mover 1012. An animated character content deliverer 1014coupled to the animated character displayer 1008 may deliver the contentto a user through the animated character. This may include convertingtext from the IM into audio through text-to-speech synthesis with atext-to-speech synthesizer 1016 and playing the audio with an audioplayer 1018 coupled to the text-to-speech synthesizer 1016. Thedelivering may further include animating the character insynchronization with the playing of the audio using an animatedcharacter audio synchronizer 1020. Further, the delivering may includedetecting an emoticon in the IM using an emoticon detector 1022 andanimating the character in a way that reflects the emoticon using anemoticon character animator 1024 coupled to the emoticon detector 1022.

FIG. 11 is a block diagram illustrating an apparatus for receivingadvertising on a computer system in accordance with an embodiment of thepresent invention. An advertisement details periodic retriever 1100 mayperiodically retrieve advertisement details from a server. An animatedcharacter downloader 1102 coupled to said advertisement details periodicretriever 1100 may download an animated character specified to representthe advertisement. An animated character displayer 1104 coupled to theanimated character downloader 1102 may display the animated characterspecified to represent the advertisement. An animated character contentdeliverer 1106 coupled to the animated character displayer 1104 maydeliver content specified in the dynamically created file.

FIG. 12 is a block diagram illustrating an apparatus for interactingwith a software robot in accordance with an embodiment of the presentinvention. A server alert sender 1200 may send an alert to a server. Thesending of an alert may include a sending a message indicating that aweb search is to be performed using a web search message sender 1202 andsending keywords to search in the web search using a keyword sender 1204coupled to the web search message sender. An artificial intelligenceresponse receiver 1206 may receive a response containing content fromthe server generated by an artificial intelligence (AI) application. Ananimated character displayer 1208 coupled to the artificial intelligenceresponse receiver 1206 may display an animated character associated withthe AI application. An animated character content deliverer 1210 coupledto the animated character displayer 1208 may deliver the content to auser through the animated character associated with the AI application.This may include delivering results of a web search if one was conductedusing a web search results deliverer 1212.

FIG. 13 is a block diagram illustrating an apparatus for managing an IMsystem in accordance with an embodiment of the present invention. Ananimated character request receiver 1300 may receive a request from auser for an animated character, the request including an identificationof a sender of the IM message to the user. A database query generator1302 coupled to the animated character request receiver 1300 may query adatabase with the identification. An animated character databaseinformation receiver 1304 may receive information regarding the animatedcharacter from the database. This information may include a location foran animation file representing the animated character. An animatedcharacter database information forwarder 1306 coupled to the animatedcharacter database information receiver 1304 may forward the informationregarding the animated character to the user.

FIG. 14 is a block diagram illustrating an apparatus for servingadvertising to a user of a computer system in accordance with anembodiment of the present invention. A periodic advertisement requestreceiver 1400 may receive a periodic request for an advertisement from auser. An advertisement selector 1402 coupled to the periodicadvertisement request receiver 1400 may select an advertisement from anadvertising database. An advertisement server 1404 coupled to theadvertisement selector 1402 may serve the advertisement to the user.

FIG. 15 is a block diagram illustrating an apparatus for providingaccess to an artificial intelligence software robot to a user inaccordance with an embodiment of the present invention. An alertdetector 1500 may detect an alert being sent from the user in an IMmessage, the IM message including content. An artificial intelligencealert passer 1502 coupled to the alert detector 1500 may pass the alertand the content to an artificial intelligence application. The AIapplication may provide interactive help, web searching, or othercapabilities to the user. An artificial intelligence response receiver1504 may receive a response from the artificial intelligenceapplication. An artificial intelligence response forwarder 1506 coupledto the artificial intelligence response receiver 1504 may forward theresponse to the user.

FIG. 16 is a block diagram illustrating an apparatus for providing IMaccess on a Short Message Service (SMS) or Multimedia Message Service(MWS) format device in accordance with an embodiment of the presentinvention. An SMS or MMS forwarding message receiver 1600 may receive amessage from the user indicating that the user wishes for all messagesto be forwarded to a device utilizing the SMS format. An SMS or MMSdevice identification retriever 1602 coupled to the SMS or MMSforwarding message receiver 1600 may retrieve an identification of thedevice from a database. This identification may be a cellular phonenumber. An SMS or MMS message formatter 1604 may format a messageintended for the user in SMS or MMS. An SMS or MMS message forwarder1606 coupled to the SMS or MMS message formatter 1604 and to the SMS orMMS device identification retriever 1602 may forward the formattedmessage to a communications gateway along with the identification

FIG. 17 is a block diagram illustrating an apparatus for personalizingan animated character on a computer system in accordance with anembodiment of the present invention. An image receiver 1700 may receivean image from the user. An animated character image renderer 1702coupled to the image receiver 1700 may render the image as an animatedcharacter. This may include removing extraneous information from theimage using an extraneous information remover 1704, modifing the imageto a three-dimensional image using a three-dimensional image modifier1706 coupled to the extraneous information remover 1704, manipulatingthe image into preconfigured positions using a preconfigured positionimage manipulator 1708 coupled to the three-dimensional image modifier1706, interpolating movements from a base position to a new position foreach of one or more animations for the animated character to performusing a movement interpolator 1710 coupled to the preconfigured positionimage manipulator 1708, and introducing the image to a three-dimensionalgeometry engine 1712 coupled to the movement interpolator 1710. Therendered image may then be saved in a database.

FIG. 18 is a block diagram illustrating a method and an apparatus forproviding IM access on a Short Message Service (SMS) or MultimediaMessage Service (MMS) format device in accordance with an embodiment ofthe present invention which makes use of a dynamic array to form aninstruction queue. The biggest problem was in displaying the animatedcharacters for each user. Initial version of the invention saw just asingle animated character on the desktop, which would act primarily as afriendly interface for the user. One of its functions was to read outthe text of incoming instant messages and prefix the audio output withthe name of the sender. However, generally relevant software isprogrammed asynchronously. This means that a user program would tell theanimated character what it needed to do and then continue with its ownprocessing. Then at some undetermined time the program would initiateand make the animated character perform whatever you had requested. Oncethis is completed the software then notifies the user program that ithas finished and the user program can do whatever with this informationit chooses. Due to this it is not possible to harbour more than ananimated character at a time, and the reading out of the incomingmessages might not take place in their designated order. In addition tothis some computer systems can only support audio output from one userprogram at a time. If two animated characters needed to speak at oncethen only one of the characters output would be heard and the otherwould be blocked.

Now because of the notification process mentioned above whereby programnotifies the user program that a request has been processed we were ableto build a ‘sliding window’ or a dynamic array which is simply a codeversion of a queue. So what would happen is the user program wouldreceive an incoming message and it would be added into this queue,rather than immediately requesting an animated character. If thisrequest is the first or only item in the queue it would be automatically‘popped’ off and requests an animated character. Once request had beenperformed it would notify the user program and the user program would(if the queue is not empty) pop off another request and repeat the cycleover again. By doing this we overcame both of the problems whereby notonly can we control the order in which incoming messages are displayedto the user, but also prevent the animated characters from talking overone and another.

The process therefore as shown in FIG. 18 is:

-   -   1. The invention awaits an incoming message for the instant        messaging program.    -   2. Once it has been determined that an incoming message was        received the invention would perform the following: -        -   a. Check to see if the auto-responder is turned on            -   i. If it is then a predefined message would be returned                to the sender of the incoming message        -   b. Extract the name of the sender        -   c. Determine the unique identifier of this sender by            checking in the contacts list        -   d. Convert any acronyms into ‘English’        -   e. Check for any emoticons and store them in a list for            later.    -   3. Request the details regarding the senders animated character        from the server    -   4. Add the message text into the queue (as mentioned above)        along with any emoticons that were extracted    -   5. Once these items in the queue get processed the invention        will retrieve the emoticons for the defined animated character        from the server    -   6. Load the users animated character onto the screen    -   7. Read out the message while the above step 5 is taking place    -   8. Play the emoticons

The second biggest problem to be overcome was how to determine anincoming message had arrived. The solution we decided upon was to havethe invention locate the messaging windows and scan their contents at aregular interval (say 100 ms). It would then compare the contents of themessaging window with the contents of the window previously. It wasdetermined that if the contents were different then a new message hadarrived and that the different between the two would represent thismessage. It was then into a process of extracting the name of the senderfrom this message and adding its details to the queue for processing.

While embodiments and applications of this invention have been shown anddescribed, it would be apparent to those skilled in the art having thebenefit of this disclosure that many more modifications than mentionedabove are possible without departing from the inventive concepts herein.The invention, therefore, is not to be restricted except in the spiritof the appended claims.

1. A method for instant messaging on a computer system, includingreceiving an instant message (IM) containing content from a sender;displaying an animated character associated with said sender; anddelivering said content to a user through said animated character. 2-8.(canceled)
 9. The method of claim 1 further including: periodicallyretrieving advertisement details from a server; downloading an animatedcharacter specified to represent said advertisement; displaying saidanimated character specified to represent said advertisement; anddelivering content specified for said advertisement.
 10. The method ofclaim 1, further including: sending an alert to a server; receiving aresponse containing content from said server generated by an artificialintelligence (AI) application; displaying an animated characterassociated with said AI application; and delivering said content to auser through said animated character associated with said AIapplication.
 11. The method of claim 10, wherein said sending an alertincludes: sending a message indicating that a web search is to beperformed; and sending keywords to search in said web search.
 12. Themethod of claim 11, wherein said delivering said content comprisesdelivering results of said web search.
 13. The method of claim 1,further including: allowing the user to select from one or morepredefined animated characters to be displayed on a recipient's computersystem when said user sends an IM message to said recipient.
 14. Themethod of claim 1, further including: allowing the user to upload animage to be used in creating an animated character to be displayed on arecipient's computer system when said user sends an IM message to saidrecipient.
 15. A method for instant messaging on a digital communicationsystem such as a computer system or digital telephone system orcombination thereof, including: receiving one or more instant messages(IM) containing content from one or more senders; forming a queue bycreating a dynamic array and inserting incoming message into said queue;controlling the timing of operations of actions in the queue and whenrequired displaying an animated character associated with said sender;and delivering said content to a user through said animated character.16-18. (canceled)
 19. A method for managing an Instant Messaging (IM)system, including: receiving a request from a user for an animatedcharacter, said request including an identification of a sender of an IMmessage to said user; querying a database with said identification;receiving information regarding said animated character from saiddatabase; and forwarding said information regarding said animatedcharacter to said user. 20-30. (canceled)
 31. An apparatus for instantmessaging on a computer system, including: an IM receiver; an animatedcharacter displayer coupled to said IM receiver; and an animatedcharacter content deliverer coupled to said animated characterdisplayer. 32-38. (canceled)
 39. The apparatus of claim 31, furtherincluding: an advertisement details periodic retriever; and an animatedcharacter downloader coupled to said advertisement details periodicretriever and to said animated character content deliverer,.
 40. Theapparatus of claim 31, further including: a server alert sender; anartificial intelligence response receiver coupled to said animatedcharacter displayer and to said animated character content deliverer.41. The apparatus of claim 40, wherein said server alert senderincludes: a web search message sender; and a keyword sender coupled tosaid web search message sender.
 42. (canceled)
 43. An apparatus formanaging an instant Messaging (IM) system, including: an animatedcharacter request receiver; a database query generator coupled to saidanimated character request receiver; an animated character databaseinformation receiver; and an animated character database informationforwarder coupled to said animated character database informationreceiver. 44-49. (canceled)
 50. An apparatus for instant messaging on acomputer system, including: means for receiving an instant message (IM)containing content from a sender; means for displaying an animatedcharacter associated with said sender; and means for delivering saidcontent to a user through said animated character. 51-61. (canceled) 62.The apparatus of claim 50, further including: means for allowing theuser to select from one or more predefined animated characters to bedisplayed on a recipient's computer system when said user sends an IMmessage to said recipient.
 63. The apparatus of claim 50, furtherincluding: means for allowing the user to upload an image to be used increating an animated character to be displayed on a recipient's computersystem when said user sends an IM message to said recipient.
 64. Anapparatus for managing an Instant Messaging (IM) system, including:means for receiving a request from a user for an animated character,said request including an identification of a sender of an IM message tosaid user; means for querying a database with said identification; meansfor receiving information regarding said animated character from saiddatabase; and means for forwarding said information regarding saidanimated character to said user. 65-78. (canceled)
 79. A program storagedevice readable by a machine, tangibly embodying a program ofinstructions executable by the machine to perform a method for instantmessaging on a computer system, the method including: receiving aninstant message (IM) containing content from a sender; displaying ananimated character associated with said sender; and delivering saidcontent to a user through said animated character.
 80. A program storagedevice readable by a machine, tangibly embodying a program ofinstructions executable by the machine to perform a method for managingan Instant Messaging (IM) system, the method including: receiving arequest from a user for an animated character, said request including anidentification of a sender of an IM message to said user; querying adatabase with said identification; receiving information regarding saidanimated character from said database; and forwarding said informationregarding said animated character to said user.